package com.IC.base.service;

import IC.common.core.domain.R;
import com.IC.domain.PersonnelType;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.IC.domain.dto.ActualPopulationDTO;
import com.IC.domain.po.ActualPopulationPo;
import com.IC.domain.po.NationPO;
import com.IC.domain.vo.ActualPopulationVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface ActualPopulationService extends IService<ActualPopulationPo> {

    /**
     * 查询实有人口全部信息
     * @param actualPopulationDTO
     * @return
     */
    PageInfo<ActualPopulationVO> findlist(ActualPopulationDTO actualPopulationDTO);

    /**
     * 查询民族
     * @return
     */
    List<NationPO> findNationList();

    /**
     * 查询全部人口下拉框
     * @return
     */
    List<ActualPopulationPo> findAll();

    /**
     * 查询全部人口（导出）
     * @return
     */
    List<ActualPopulationPo> selectlist();

    /**
     * 导入
     * @param actualPopulationPos
     */
    void insertList(List<ActualPopulationPo> actualPopulationPos);

    /**
     * 查询实有人口类型
     * @return
     */
    PersonnelType findPersonType();

    /**
     * 根据小区id查询实有人口
     * @param id
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<ActualPopulationVO> findByPlotId(Integer id, Integer pageNum, Integer pageSize);

    /**
     * 查询不常出现人口数量
     * @return
     */
    String findcount();

    List<ActualPopulationVO> findlasttime(ActualPopulationDTO actualPopulationDTO);

    List<ActualPopulationVO> findByPlotIdList(Integer id);

    void dotransfer(ActualPopulationVO actualPopulationVO);

    R add(ActualPopulationVO actualPopulationVO);

    void updateByPoId(ActualPopulationVO actualPopulationVO);

    ActualPopulationVO findById(Integer id);

    List<ActualPopulationVO> findByTenementId(Integer id);

    List<ActualPopulationVO> all();

    String upload(MultipartFile file);

    Integer findCount();

    Integer findTodayAddCount();



//    R upload(MultipartFile file);
}
